iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
0
Modern Web

JavaScript 30 days系列 第 3

day#03 條件式

  • 分享至 

  • xImage
  •  

and

在JavaScript中,兩個 "&"代表 and的意思,and代表所有條件都成立才是 true, 否則為 false

    const con1 = true
    const con2 = true
    const con3 = false
    
    console.log(con1 && con2)  // true
    console.log(con1 && con2 && con3)  // false

or

在JavaScript中,兩個"|"符號代表 or的意思,or代表只要有一個值為 true,即為 true

    const con1 = true
    const con2 = true
    const con3 = false
    
    console.log(con1 || con2) // true
    console.log(con1 || con2 || con3)  // true

if

單一 if:條件成立執行大括弧內的程式,不成立則直接跳過

    const dog = {
    	isAnimal: true
    }
    
    if (dog.isAnimal) {
    	console.log('dog is animal')
    }

if..else

如果 if的條件不成立,則執行 else內的程式

    const person = {
    	name: 'Ellen',
    	gender: 'girl'
    } 
    
    if (person.gender === 'girl') {
    	console.log('I am a girl')
    } else {
    	console.log('I am a man')
    }

if...else if...else

如果 if條件不成立,則看看 else if成不成立,如果都不成立,就執行 else內的程式

這是一個範例:

    const con1 = true
    const con2 = false
    
    if (con1 && con2) {
    	console.log('con1 and con2 both are true')
    } else if (con1 || con2) {
    	console.log('both or one of con1 or con2 is true')
    } else if (con2) {
    	console.log('con2 is true')
    } else {
    	console.log('con1 is false')
    }

Tip:else if 可以多個同時存在。

else if 平時較少使用,同樣的範例實務上有更好讀的寫法:

    const con1 = true
    const con2 = false
    
    if (con1 && con2) {
    	console.log('con1 and con2 both are true')
    }
    
    if(con1 || con2) {
    	console.log('both or one of con1 or con2 is true')
    }
    
    if (con1) {
    	console.log('con1 is true')
    }
    
    if(con2) {
    	console.log('con2 is true')
    }

switch

switch,語意上是選擇的意思,但實際使用時如果沒有適當的使用 break,可能會造成bug。

    const name = 'Peter'
    
    switch (name) {
    	case 'Peter':
    		console.log('I am Peter')
    	case 'Jenny':
    		console.log('I am Jenny')
    	case 'peter':
    		console.log('I am peter')
    }

這個範例有幾個問題,當 name符合case條件時會執行該片段程式,但因為沒有使用 break因此即便執行完了第一個case內的程式,還是會繼續往下執行,並不會停止。另外,如果所有條件都不成立,就不會執行任何動作。

我們將這個範例改良一下:

    const name = 'Peter'
    
    switch (name) {
    	case 'Peter':
    		console.log('I am Peter')
    		break
    	case 'Jenny':
    		console.log('I am Jenny')
    		break
    	case 'peter':
    		console.log('I am peter')
    		break
    	default:
    		console.log('default option')
    }

現在我們有了 break,程式會在完成第一個符合條件的case後被停止。

default會在所有條件都不成立時被執行。

所有的 switch都該這麼寫,除非你知道自己在幹嘛,但即便如此,若有這樣的需求存在,通常都會有更好的做法。


上一篇
day#02 型別
系列文
JavaScript 30 days3
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言